package com.sceneworker.passmonitor;

import java.util.Vector;

import com.acarter.composabletree.ComposableTreeModel;
import com.acarter.composabletree.ComposableTreeNode;
import com.acarter.jmejtree.treenode.ControllerTreeNode;
import com.acarter.jmejtree.treenode.RenderStateTreeNode;
import com.acarter.jmejtree.treenode.SpatialTreeNode;
import com.sceneworker.jmetreeextensions.SceneWorkerComposableTreeModel;

public class PassManagerTreeModel extends SceneWorkerComposableTreeModel {
//public class PassManagerTreeModel extends ComposableTreeModel {

	public PassManagerTreeModel(Object root) {
		super(root);
		
		SpatialTreeNode 		lcl_spatialTN = new SpatialTreeNode();
		RenderStateTreeNode 	lcl_renderstateTN = new RenderStateTreeNode();
		ControllerTreeNode 		lcl_controllerTN = new ControllerTreeNode();
		
		Vector<ComposableTreeNode> lcla_spatialTNChildren = new Vector<ComposableTreeNode>();
		lcla_spatialTNChildren.add(lcl_renderstateTN);
		lcla_spatialTNChildren.add(lcl_controllerTN);
		lcla_spatialTNChildren.add(lcl_spatialTN);
		
		PassSpatialTreeNode			lcl_passSpatial = new PassSpatialTreeNode();
		addNodeType(lcl_passSpatial, lcla_spatialTNChildren);
		
		PassRenderStateTreeNode		lcl_passRenderStatesNode = new PassRenderStateTreeNode();
		addNodeType(lcl_passRenderStatesNode, new Vector<ComposableTreeNode>());
		
		// children of pass
		Vector<ComposableTreeNode> lcl_passChildren = new Vector<ComposableTreeNode>();
		lcl_passChildren.add(lcl_passSpatial);
		lcl_passChildren.add(lcl_passRenderStatesNode);
		
		// pass tree node
		PassTreeNode		lcl_passNode = new PassTreeNode();
		addNodeType(lcl_passNode, lcl_passChildren);
		
		// children of pass manager
		Vector<ComposableTreeNode> lcl_passMgrChildren = new Vector<ComposableTreeNode>();
		lcl_passMgrChildren.add(lcl_passNode);
		
		// pass manager node...has pass as child
		PassManagerTreeNode		lcl_mgrTreeNode = new PassManagerTreeNode();
		addNodeType(lcl_mgrTreeNode, lcl_passMgrChildren);
		
		
		
		
	}

}
